home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / network / chat / reflect.000 / reflect / 3.0b3 / globals.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-01-11  |  15.0 KB  |  388 lines

  1. void                proc_sig();
  2. void                do_timer();
  3. void                my_perror();
  4. client              *find_client();
  5. vat_client          *find_vat_client();
  6. vat_client          *new_vat_client();
  7. client              *open_connection();
  8. int                 get_type();
  9. slist               *unlink_slist();
  10. client              *unlink_client();
  11. short               get_client_id();
  12. void                hold_down_client();
  13. void                delete_client();
  14. client              *unlink_client();
  15. void                free_client();
  16. client              *get_client();
  17. void                free_slist();
  18. slist               *get_slist();
  19. void                remove_some_clients();
  20. void                write_cmsg();
  21. void                write_close();
  22. void                write_pkt();
  23. void                vat_id();
  24. void                distribute();
  25. void                distribute_audio();
  26. client              *open_connection();
  27. void                continue_connection();
  28. void                update_client();
  29. void                mbone_pkt();
  30. VideoPacketHeader   *make_open_continue();
  31. SiteId              *find_site_vms();
  32. SiteId              *find_site_idlist();
  33. void                update_vms_times();
  34. VatMixerSpeaker     *delete_vms_member();
  35. VatMixerSpeaker     *add_vms_member();
  36. void                update_vms_list();
  37. void                send_mixer_open_continues();
  38. void                send_nv_ocp();
  39. VideoPacketHeader   *nv_to_cuseeme();
  40. void                delete_vat_client();
  41. void                send_vat_idlist();
  42. unsigned long       RTPTime();
  43. void                distribute_nv();
  44. short               send_to_nv();
  45. void                check_restricted_senders();
  46.  
  47. #ifdef __MAIN__
  48.  
  49. client *chead = NULL;                         /* ptr to the active client list             */
  50. client *clfree = NULL;                        /* ptr to the free client list               */
  51.  
  52. slist *sfree = NULL;                          /* ptr to the free slist list                */
  53.  
  54. short cfree_cnt,sfree_cnt;                    /* # of free clients and slists              */
  55.  
  56. vat_client *mhead = NULL;                   /* global ptr to the maven client list       */
  57.  
  58. unsigned long restrict_list[MAXCLIENT];       /* list of IP addrs if this reflector        */
  59. short restrict_cnt = 0;                       /* is restricted                             */
  60.  
  61. unsigned long admit_senders[MAXCLIENT];       /* list of IP addrs allowed to send          */
  62. short admit_cnt = 0;                          /* count of the above                        */
  63.  
  64. unsigned long deny_list[MAXCLIENT];           /* list of IP addrs to deny connectivity to  */
  65. short deny_cnt = 0;                           /*                                           */
  66.  
  67. unsigned long tmp_deny_list[MAXCLIENT];       /* list of IP addrs to temporarily deny connectivity to  */
  68. unsigned short tmp_deny_wait[MAXCLIENT];      /* wait time for entires on the tmp_deny_list */
  69.  
  70. unsigned long bcc_server_list[MAXSRCREF];     /* list of Blind Carbon Copy Servers, from   */
  71. unsigned long bcc_server_list_id[MAXSRCREF];  /* conference ID's for the BCC Servers       */
  72. short bcc_srv_cnt = 0;                        /* whom we are to get video from             */
  73.  
  74. unsigned long bcc_client_list[MAXSRCREF];     /* list of Blind Carbon Copy Clients, to     */
  75. short bcc_clt_cnt = 0;                        /* whom we are to give video to              */
  76.  
  77. unsigned long ref_ucast_list[MAXSRCREF];      /* list of unicast reflectors                */
  78. short ref_ucast_cnt = 0;                      /* count of unicast reflectors               */
  79.  
  80. unsigned long send_to_nv_list[MAXNVSTREAMS];  /* list of addrs from which to send video to nv clients */
  81. unsigned short send_to_nv_timer[MAXNVSTREAMS];/* send timer for the above addresses        */
  82. short send_to_nv_cnt = 0;                     /* # of entries in the list                  */
  83.  
  84. char *tracefile;                              /* trace / log file name                     */
  85. FILE *log_file;
  86.  
  87. short debug = 0;                              /* if 1, turn on debugging messages          */
  88. short self_reflect = 0;                       /* if 1, reflect back to the send            */
  89.  
  90. short local_senders = 1;                      /* if 0, disallow local conferencing, used   */
  91.                                               /* if this reflector is simply feeding a     */
  92.                                               /* conference to all of it's clients         */
  93.  
  94. unsigned long control_ip = -1;                /* ip address for refmon                     */
  95. unsigned long god_ip = -1;                    /* ip address for the conference god         */
  96.  
  97.  
  98. int conference_id = 0;                        /* conference id                             */
  99.  
  100. int gbcc_cnt = 0;                             /* # of general BCC connections to allow     */
  101. int gbcc_id = 0;                              /* conference id for the general BCC client  */
  102.  
  103. short timer_expired = 0;                      /* keep track of our timer                   */
  104.  
  105. int min_mac_version = 0;                      /* minimum mac version # required for this ref  */
  106. int min_pc_version = 0;                       /* minimum pc version # required for this ref   */
  107.  
  108. int cap;                                      /* default maximum transmission cap          */
  109.  
  110.  
  111. int hold_down = 30;                           /* default hold down 30 minutes              */
  112.  
  113. int vid_sock,cntrl_sock,msg_sock;             /* video socket, control                     */
  114.                                               /* socket, and message socket for supporing  */
  115.                                               /* the control socket                        */
  116.  
  117. struct sockaddr_in myaddr;                    /* my address                                */
  118. int maxallowed;                               /* maximum # of clients allowed              */
  119. int maxsenders = -1;                          /* maximum # of senders allowed              */
  120. int maxlurkers = -1;                          /* maximum # of lurkers allowed              */
  121.  
  122. char conf_buf[CONFBUF];                       /* buffer for storing the config file        */
  123. char motd_buf[MOTDBUF];                       /* buffer for storing the MOTD               */
  124.  
  125. char mp_buf[MSGBUF];                          /* buffer for max-participants error msg     */
  126. char ms_buf[MSGBUF];                          /* buffer for max-senders error msg          */
  127. char ml_buf[MSGBUF];                          /* buffer for max-lurkers error msg          */
  128. char ci_buf[MSGBUF];                          /* buffer for conference-id error msg        */
  129. char ad_buf[MSGBUF];                          /* buffer for admit error msg                */
  130. char cap_buf[MSGBUF];                         /* buffer for cap error msg                  */
  131. char mv_mac_buf[MSGBUF];                      /* buffer for min-mac-version error msg      */
  132. char mv_pc_buf[MSGBUF];                       /* buffer for min-pc-version error msg       */
  133. char dy_buf[MSGBUF];                          /* buffer for deny error msg                 */
  134.  
  135. short motd_len = 0;
  136.  
  137. int maven_port = 0;                           /* sockets for handling Maven clients        */
  138. int maven_sock = 0;
  139.  
  140. int maven_cntl_sock = 0;
  141. int maven_cntl_sock_out = 0;
  142.  
  143. int nv_ucast_port = 0;                        /* port for nv's unicasting to the reflector */
  144. int nv_ucast_sock = 0;
  145.  
  146. unsigned short client_cnt = 0;                /* # of Mac/PC clients                       */
  147. unsigned short nv_client_cnt = 0;             /* # of nv clients                           */
  148. unsigned short send_ccnt = 0;                /* # of clients that are also video senders  */
  149. unsigned short lurker_ccnt = 0;              /* # of clients that are just video lurkers  */
  150.  
  151. unsigned short bcc_client_cnt = 0;            /* # of BCC clients                          */
  152. unsigned short bcc_gclient_cnt = 0;           /* # of BCC general clients                  */
  153. unsigned short bcc_origin_cnt = 0;            /* # of BCC origins                          */
  154. unsigned short bcc_server_cnt = 0;            /* # of BCC servers                          */
  155.  
  156. unsigned short ref1_server_cnt = 0;           /* # of REF1 servers                         */
  157. unsigned short ref1_origin_cnt = 0;           /* # of REF1 origins                         */
  158. unsigned short ref1_client_cnt = 0;           /* # of REF1 clients                         */
  159.  
  160. unsigned short ref2_server_cnt = 0;           /* # of REF2 servers                         */
  161. unsigned short ref2_origin_cnt = 0;           /* # of REF2 origins                         */
  162.  
  163. unsigned short ref3_server_cnt = 0;           /* # of REF3 servers                         */
  164. unsigned short ref3_origin_cnt = 0;           /* # of REF3 origins                         */
  165.  
  166. unsigned short vat_client_cnt = 0;          /* # of maven clients                        */
  167.  
  168.  
  169. int log_limit = 10000;                        /* default log file line limit               */
  170. unsigned long tick_cnt;                       /* # of times through the timer loop         */
  171.  
  172. char start_time[25];                          /* date and time when reflector was started  */
  173.  
  174. int vat_confid = 0;                           /* vat conference id.  This is the confid
  175.                                                  needed to relay CUSM audio to MBone vats.
  176.                                                  It is supplied by the config file.        */
  177.  
  178. int vat_port = 0;                             /* port for vat multicast clients            */
  179. int nv_mcast_port = 0;                        /* port for nv multicast clients             */
  180.  
  181. struct sockaddr_in nv_out_mcast;              /* socket for sending to nv                  */
  182. int nv_out_mcast_sock;
  183.  
  184. struct sockaddr_in nv_in_mcast;               /* socket for receiving from nv              */
  185. int nv_in_mcast_sock;
  186.  
  187. struct sockaddr_in nv_inout_mcast;            /* socket for sending to and receiving from nv on a multicast address */
  188. int nv_inout_mcast_sock;
  189.  
  190. struct sockaddr_in rfout_mcast;               /* socket for sending to other reflectors    */
  191. int rfout_mcast_sock;
  192.  
  193. struct sockaddr_in rfin_mcast;                /* socket for receiving from other reflectors */
  194. int rfin_mcast_sock;
  195.  
  196. struct sockaddr_in inout_mcast;               /* socket for sending and receiving from other reflectors */
  197. int inout_mcast_sock;
  198.  
  199. struct sockaddr_in vat_in_mcast;              /* socket for receiving vat from a multicast address */
  200. int vat_in_mcast_sock = 0;
  201.  
  202. struct sockaddr_in vat_out_mcast;             /* socket for sending to vat on a multicast address */
  203. int vat_out_mcast_sock = 0;
  204.  
  205. struct sockaddr_in vat_inout_mcast;           /* socket for sending to and receiving from vat on a multicast address */
  206. int vat_inout_mcast_sock = 0;
  207.  
  208. int vat_cntl_mcast_sock = 0;                  /* vat control socket -- analogous to maven_cntl   */
  209.  
  210. int nv_ttl,rf_ttl,inout_ttl,vat_ttl;          /* multicast ttl's                                 */
  211.  
  212. int nv_streams = 4;                           /* # of video streams to send to nv clients        */
  213.  
  214. unsigned char  buffer[MAXMSG];
  215.  
  216. unsigned long bytes_in, bytes_out;
  217. unsigned long pkts_in, pkts_out;
  218.  
  219. #endif
  220.  
  221. #ifndef __MAIN__
  222.  
  223. extern client *chead;
  224. extern client *clfree;
  225.  
  226. extern slist *sfree;
  227.  
  228. extern short cfree_cnt,sfree_cnt; 
  229.  
  230. extern vat_client *mhead;
  231.  
  232. extern unsigned long restrict_list[MAXCLIENT]; 
  233. extern short restrict_cnt;
  234.  
  235. extern unsigned long admit_senders[MAXCLIENT];
  236. extern short admit_cnt;
  237.  
  238. extern unsigned long deny_list[MAXCLIENT]; 
  239. extern short deny_cnt;
  240.  
  241. extern unsigned long tmp_deny_list[MAXCLIENT];
  242. extern unsigned short tmp_deny_wait[MAXCLIENT];
  243.  
  244. extern unsigned long bcc_server_list[MAXSRCREF];
  245. extern unsigned long bcc_server_list_id[MAXSRCREF]; 
  246. extern short bcc_srv_cnt;
  247.  
  248. extern unsigned long bcc_client_list[MAXSRCREF];
  249. extern short bcc_clt_cnt;
  250.  
  251. extern unsigned long ref_ucast_list[MAXSRCREF];
  252. extern short ref_ucast_cnt;
  253.  
  254. extern unsigned long send_to_nv_list[MAXNVSTREAMS];
  255. extern unsigned short send_to_nv_timer[MAXNVSTREAMS];
  256. extern short send_to_nv_cnt;                        
  257.  
  258. extern char *tracefile;  
  259. extern FILE *log_file;
  260.  
  261. extern short debug;
  262. extern short self_reflect;
  263.  
  264. extern short local_senders;
  265.                          
  266. extern unsigned long control_ip;
  267. extern unsigned long god_ip;
  268.  
  269. extern int conference_id;
  270. extern int gbcc_cnt;
  271. extern int gbcc_now; 
  272. extern int gbcc_id;
  273.  
  274. extern short timer_expired;
  275.  
  276. extern int min_mac_version;
  277. extern int min_pc_version; 
  278.  
  279. extern int cap;          
  280.  
  281. extern int hold_down;
  282.  
  283. extern int vid_sock,cntrl_sock,msg_sock;
  284.  
  285. extern struct sockaddr_in myaddr;    
  286. extern int maxallowed;              
  287. extern int maxsenders;                              
  288. extern int maxlurkers;                               
  289.  
  290.  
  291. extern char conf_buf[CONFBUF];     
  292. extern char motd_buf[MOTDBUF];    
  293.  
  294. extern char mp_buf[MSGBUF];      
  295. extern char ms_buf[MSGBUF];      
  296. extern char ml_buf[MSGBUF];      
  297. extern char ci_buf[MSGBUF];     
  298. extern char ad_buf[MSGBUF];    
  299. extern char cap_buf[MSGBUF];  
  300. extern char mv_mac_buf[MSGBUF];
  301. extern char mv_pc_buf[MSGBUF];
  302. extern char dy_buf[MSGBUF];  
  303.  
  304. extern short motd_len;
  305.  
  306. extern int maven_port;
  307. extern int maven_sock;
  308. extern int maven_cntl_sock;
  309. extern int maven_cntl_sock_out;
  310. extern int nv_ucast_port; 
  311. extern int nv_ucast_sock;
  312.  
  313. extern unsigned short client_cnt;
  314. extern unsigned short nv_client_cnt;
  315. extern unsigned short send_ccnt;
  316. extern unsigned short lurker_ccnt;
  317.  
  318. extern unsigned short bcc_client_cnt;
  319. extern unsigned short bcc_gclient_cnt; 
  320. extern unsigned short bcc_origin_cnt;
  321. extern unsigned short bcc_server_cnt;
  322.  
  323. extern unsigned short ref1_server_cnt;
  324. extern unsigned short ref1_origin_cnt;
  325. extern unsigned short ref1_client_cnt;
  326.  
  327. extern unsigned short ref2_server_cnt;
  328. extern unsigned short ref2_origin_cnt;
  329.  
  330. extern unsigned short ref3_server_cnt;
  331. extern unsigned short ref3_origin_cnt;
  332. extern unsigned short vat_client_cnt; 
  333.  
  334. extern int log_limit;
  335. extern unsigned long tick_cnt;
  336.  
  337. extern char start_time[25];
  338.  
  339. extern int vat_port;
  340. extern int nv_mcast_port;
  341.  
  342. extern struct sockaddr_in nv_mcast;
  343. extern int nv_mcast_sock;
  344.  
  345. extern struct sockaddr_in nv_out_mcast;              
  346. extern int nv_out_mcast_sock;
  347.  
  348. extern struct sockaddr_in nv_in_mcast;              
  349. extern int nv_in_mcast_sock;
  350.  
  351. extern struct sockaddr_in nv_inout_mcast;          
  352. extern int nv_inout_mcast_sock;
  353.  
  354. extern struct sockaddr_in rfout_mcast;
  355. extern int rfout_mcast_sock;
  356.  
  357. extern struct sockaddr_in rfin_mcast; 
  358. extern int rfin_mcast_sock;
  359.  
  360. extern struct sockaddr_in inout_mcast;
  361. extern int inout_mcast_sock;
  362.  
  363. extern struct sockaddr_in inout_mcast;          
  364. extern int inout_mcast_sock;
  365.  
  366. extern struct sockaddr_in vat_in_mcast;          
  367. extern int vat_in_mcast_sock;
  368.  
  369. extern struct sockaddr_in vat_out_mcast;           
  370. extern int vat_out_mcast_sock;
  371.  
  372. extern struct sockaddr_in vat_inout_mcast;          
  373. extern int vat_inout_mcast_sock;
  374.  
  375. extern int vat_cntl_mcast_sock;                  
  376.  
  377. extern int nv_ttl,rf_ttl,inout_ttl,vat_ttl;          
  378. extern int nv_streams;                           
  379.  
  380. extern unsigned char  buffer[MAXMSG];
  381.  
  382. extern unsigned long bytes_in, bytes_out;
  383. extern unsigned long pkts_in, pkts_out;
  384.  
  385. extern int vat_confid;                           
  386.  
  387. #endif
  388.